在docker

您所在的位置:网站首页 docker-compose 指定ip 在docker

在docker

#在docker| 来源: 网络整理| 查看: 265

有没有更好的解决方案?

当然!容器之间的通信根本不需要主机ip。如果你link

容器在您的docker-compose.yaml文件中,您将可以访问许多环境变量,您可以使用这些变量来发现服务的ip地址。

例如,考虑具有两个容器的docker-compose配置:一个使用consul,还有一个正在运行一些需要与领事交谈的服务。

consul: image: progrium/consul command: -server -bootstrap webserver: image: larsks/mini-httpd links: - consul

首先,从consul使用just-server -bootstrap

consul找出它自己的广告地址,例如:

consul_1 | ==> Consul agent running! consul_1 | Node name: 'f39ba7ef38ef' consul_1 | Datacenter: 'dc1' consul_1 | Server: true (bootstrap: true) consul_1 | Client Addr: 0.0.0.0 (HTTP: 8500, HTTPS: -1, DNS: 53, RPC: 8400) consul_1 | Cluster Addr: 172.17.0.4 (LAN: 8301, WAN: 8302) consul_1 | Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false consul_1 | Atlas:

在webserver容器中,我们发现以下环境变量可用于pid 1:

CONSUL_PORT=udp://172.17.0.4:53 CONSUL_PORT_8300_TCP_START=tcp://172.17.0.4:8300 CONSUL_PORT_8300_TCP_ADDR=172.17.0.4 CONSUL_PORT_8300_TCP_PROTO=tcp CONSUL_PORT_8300_TCP_PORT_START=8300 CONSUL_PORT_8300_UDP_END=udp://172.17.0.4:8302 CONSUL_PORT_8300_UDP_PORT_END=8302 CONSUL_PORT_53_UDP=udp://172.17.0.4:53 CONSUL_PORT_53_UDP_ADDR=172.17.0.4 CONSUL_PORT_53_UDP_PORT=53 CONSUL_PORT_53_UDP_PROTO=udp CONSUL_PORT_8300_TCP=tcp://172.17.0.4:8300 CONSUL_PORT_8300_TCP_PORT=8300 CONSUL_PORT_8301_TCP=tcp://172.17.0.4:8301 CONSUL_PORT_8301_TCP_ADDR=172.17.0.4 CONSUL_PORT_8301_TCP_PORT=8301 CONSUL_PORT_8301_TCP_PROTO=tcp CONSUL_PORT_8301_UDP=udp://172.17.0.4:8301 CONSUL_PORT_8301_UDP_ADDR=172.17.0.4 CONSUL_PORT_8301_UDP_PORT=8301 CONSUL_PORT_8301_UDP_PROTO=udp CONSUL_PORT_8302_TCP=tcp://172.17.0.4:8302 CONSUL_PORT_8302_TCP_ADDR=172.17.0.4 CONSUL_PORT_8302_TCP_PORT=8302 CONSUL_PORT_8302_TCP_PROTO=tcp CONSUL_PORT_8302_UDP=udp://172.17.0.4:8302 CONSUL_PORT_8302_UDP_ADDR=172.17.0.4 CONSUL_PORT_8302_UDP_PORT=8302 CONSUL_PORT_8302_UDP_PROTO=udp CONSUL_PORT_8400_TCP=tcp://172.17.0.4:8400 CONSUL_PORT_8400_TCP_ADDR=172.17.0.4 CONSUL_PORT_8400_TCP_PORT=8400 CONSUL_PORT_8400_TCP_PROTO=tcp CONSUL_PORT_8500_TCP=tcp://172.17.0.4:8500 CONSUL_PORT_8500_TCP_ADDR=172.17.0.4 CONSUL_PORT_8500_TCP_PORT=8500 CONSUL_PORT_8500_TCP_PROTO=tcp

每个端口都有一组变量EXPOSED由consul图像。例如,在第二个图像中,我们可以通过连接到以下位置与consul REST API进行交互:

http://${CONSUL_PORT_8500_TCP_ADDR}:8500/


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3